# -*- coding:utf-8 -*-

"""
授信节点-风控规则-一次跑四个步骤
"""
from aw import *
from autotest import *


class Test_004(TestCase):
    def setUp(self):
        print("Test_001 setUp")

    def test(self):

        ruleStr = """
        满足以下任一条件时，响应规则
A、身份证命中银行信用不良风险_状态=02
B、身份证命中P2P信用不良风险_状态=02
C、身份证命中消费金融信用不良风险_状态=02
D、身份证命中小贷信用不良风险_状态=02
E、身份证命中商业保险信用不良风险_状态=02
F、身份证命中非银其他机构信用不良风险_状态=02
        """

        # 1 获取测试规则
        rules = Common.getRulesByResolveStr(ruleStr)
        # 2 从数据库中获取 ruleJson
        ruleJson = Common.getRuleJson()
        # 3 测试第一条规则
        index = 0
        testRule = rules[index]  # B、身份证命中P2P短时逾期风险_时间=A/B，且身份证命中P2P短时逾期风险_状态=01/99

        # 3.1 将其他的规则初始化
        Common.initializeOtherRule(rules, index, ruleJson)
        # 3.2 获取测试待测试规则组合
        testRules = Common.getTestRules(testRule)  # 测试规则的四种组合
        logger.info(testRules)

        # 3.3 测试组合
        for testRule in testRules:
            Common.setTestRule(ruleJson, testRule)
            # 4 回填规则到数据库
            Common.setRuleJson(ruleJson)

            # 5 调用进件脚本
            Common.execFile(r'D:\dev\接口代码\AssetAutoTest\fudai\FDCreditChain.py')

            # 6 检查数据库结果
            expectVaule = {"result_code": "D90", "rule_result": "D", "rule_code": "FDS_QZ04011"}
            Common.checkResult(expectVaule, times=5)
            logger.info("******************************步骤执行完毕******************************\r\n")
            logger.info("\r\n")
            logger.info("\r\n")
            logger.info("\r\n")


    def tearDown(self):
        print("Test_001 tearDown")
